﻿#ifndef _FD_XDB_DLL_CFG_H_
#define _FD_XDB_DLL_CFG_H_ 1

#include "kernel/Prerequisites_kernel.h"
#include "kernel/OgreDataStream.h"
#include "kernel/char.h"
#include "kernel/string_def.h"
#include "kernel/stringarray.h"


# if defined(FD_XDB_BUILD_STATIC)
    #define FD_DB_Export
#elif defined(FD_XDB_BUILD_DLL)
    #if (defined( __WIN32__ ) || defined( _WIN32 ))
        #define FD_DB_Export __declspec(dllexport)
    #else
        #define FD_DB_Export
    #endif
#else
    #if defined(__OS_WIN__)
        #define FD_DB_Export __declspec(dllimport)
    #else
        #define FD_DB_Export
    #endif
#endif


enum JASLocationType
{
	LT_BeforeFirstRow = -1,
	LT_AfterLastRow = -2
};


/// <summary>
/// 数据库表的类型枚举
/// </summary>
enum JASTableType
{
	TT_Tables			= 0x01, //所有用户可见表
	TT_SystemTables		= 0x02, //系统表
	TT_Views			= 0x04, //所有用户可见视图
	TT_AllTables		= 0xff  //以上所有表
};

/// <summary>
/// 参数传输类型枚举
/// </summary>
enum JASParamType
{
	PT_In,         //传入参数
	PT_Out,		//传出参数
	PT_InOut,	//传入传出参数
	PT_Binary		//与前面三个参数一起使用，指示参数是二进制数据
};

/// <summary>
/// 数值精度策略枚举
/// </summary>
enum JASNumericalPrecisionPolicy
{
	NP_LowPrecisionInt32    = 0x01,
	NP_LowPrecisionInt64    = 0x02,
	NP_LowPrecisionDouble   = 0x04,
	NP_HighPrecision        = 0
};

#ifdef FDB_LINUX
#define _SILENCE_STDEXT_HASH_DEPRECATION_WARNINGS 1
#endif

#endif
